package org.dei.perla.utils.dataconverter.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.dei.perla.utils.dataconverter.enums.Endianness;

/**
 * Annotazione per la caratterizzazione di una struttura dati.
 * @author Guido Rota
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface StructInfo {

	/**
	 * Indica se i campi della struttura sono da considerarsi codificati
	 * come Big Endian o Little Endian
	 */
	Endianness endianness();
	
	/**
	 * Dimensione della struttura, -1 nel caso la struttura sia a dimensione variabile
	 */
	int totalStructSize() default -1;
}
